home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Toolbox
/
Visual Basic Toolbox (P.I.E.)(1996).ISO
/
access
/
comlyr
/
acc2comp.txt
< prev
next >
Wrap
Text File
|
1994-09-26
|
20KB
|
434 lines
A C C 2 C O M P . T X T
Release Notes for Compatibility Layer
Microsoft Visual Basic (R) 3.0 -- Microsoft Access (R) 2.0
(C) Copyright Microsoft Corporation, 1994
This document describes the Microsoft Jet Database Engine version
2.0/Visual Basic version 3.0 Compatibility Layer, which enables
VisualBasic version 3.0 and applications created with Visual Basic
version 3.0 to use data stored in Microsoft Access version 2.0
databases.
------------------------
How To Use This Document
------------------------
To view this document on screen using Microsoft Windows Notepad,
maximize the Notepad window.
To print this document, open it using Windows Write, Microsoft
Word, or another word processor. Then select the entire document
and format the text in 10-point Courier font before printing.
--------
Contents
--------
1. Summary
2. Installing the Compatibility Layer
3. Limitations of the Compatibility Layer
4. Microsoft Jet Database Engine 1.1 Compatibility Issues
5. Adapting Your .INI Files
6. Availability of Version 2.0 Jet Database Engine Features
-----------
1. Summary
-----------
Microsoft Access version 2.0 uses a file format for database
(.MDB) files that is different from the format used by Microsoft
Access versions 1.1 and 1.0. Microsoft Visual Basic version 3.0
cannot use databases in Microsoft Access 2.0 format. If you want
to share .MDB format databases between Microsoft Access 2.0 and
Visual Basic 3.0 applications, you must either:
** Keep the .MDB files in 1.1 format, which both Microsoft
Access 2.0 and Visual Basic 3.0 can use.
** Install the Jet Database Engine 2.0/Visual Basic 3.0
Compatibility Layer included on this disk.
The rest of this document describes the Compatibility Layer.
The files on this disk enable Visual Basic 3.0 (Standard or
Professional Edition) and applications created with Visual Basic
3.0 to use the version 2.0 Jet database engine to read and write
data stored in Microsoft Access 2.0 databases. If your Visual
Basic 3.0 application doesn't use Microsoft Access 2.0 databases,
you won't significantly benefit from using the Compatibility
Layer. If you access remote data through attached tables in
databases that use the Jet database engine, you will benefit, but
you may need to make minor modifications to the application source
code. If you don't have access to the source code, you may want to
reconsider converting to the version 2.0 Jet database engine.
---------------------------------------
2. Installing the Compatibility Layer
---------------------------------------
Before you begin, make backup copies of the existing Visual Basic
3.0 data access files that will be either replaced or modified.
These include the following files.
Table 2.1 Files That Are Replaced or Modified
by the Compatibility Layer
---------------------------------------------------
File Description
---------------------------------------------------
VBDB300.DLL Visual Basic to Jet database engine
1.1 interface DLL
PDCTJET.DLL Run-time DLL for Crystal Reports
PDIRJET.DLL Run-time DLL for Crystal Reports
PDBJET.DLL Run-time DLL for Crystal Reports
CRW.EXE Crystal Report Designer application
VB.INI Visual Basic initialization file
SETUPWIZ.INI Setup Wizard initialization file
----------------------------------------------------------
NOTE You may not have all these files on your system; for
example, CRW.EXE is included only in the Professional
Edition of Visual Basic 3.0.
-----------------------------------------------------------
To upgrade your existing Visual Basic 3.0 Standard or Professional
Edition to support the version 2.0 Jet database engine, you need
the following files.
Table 2.2 Files Needed to Upgrade Visual Basic 3.0
----------------------------------------------------
File Description
----------------------------------------------------
MSAJT200.DLL Version 2.0 Jet database engine
MSAJT112.DLL Jet Database Engine 2.0/Visual Basic
3.0 Compatibility Layer
VBDB300.DLL Visual Basic to Jet database engine support DLL
BTRV200.DLL Btrieve ISAM driver library
PDX200.DLL Paradox ISAM driver library
XBS200.DLL Microsoft FoxPro ISAM driver library
CRWACC20.EXE Program that modifies Crystal Reports files
to work with Microsoft Access 2.0 databases
SETUP.EXE Application that installs the Compatibility Layer
ACC2COMP.TXT This file
>>>To install the Compatibility Layer
-------------------------------------
1. Insert the Compatibility Layer disk into drive A.
2. From the File menu in the Windows Program Manager or
File Manager, choose Run.
3. Type a:setup
4. Follow the Setup instructions on screen.
Once Setup is complete, you may not need to do to anything else to
your Visual Basic application, unless you've included code for
creating or compacting databases, or code that specifically refers
to version 1.1 installable ISAM drivers. Details on how to deal
with these and other contingencies are discussed in the following
sections.
CRWACC20.EXE is an MS-DOS-based program that enables Crystal
Reports for Visual Basic to work with the version 2.0 Jet database
engine. It modifies the following files:
** CRW.EXE
** PDBJET.DLL
** PDIRJET.DLL
** PDCTJET.DLL
The program looks for these files in the current directory or in a
directory passed in as part of the command line when it is run. To
modify these files, you must run this program after running Setup.
Once the program has modified the files it is of no further use.
However, you might reinstall Crystal Reports after you install the
Compatibility Layer, so you may want to run the program again
later.
>>>To run CRWACC20.EXE
----------------------
* At the command prompt, type CRWACC20 <path to CRW.EXE>
For example, if CRW.EXE is in a VB subdirectory
called REPORT, you type this:
CRWACC20 c:\vb\report
If CRWACC20.EXE finds the files in the specified directory, it
modifies them. If you don't specify a path, it looks in the
current directory. When this program modifies a file, the date for
the file is set to the current date.
After you run Setup, examine your VB.INI file for references to
the Jet database engine 1.1 installable ISAM drivers (BTRV110.DLL,
PDX110.DLL, XBS110.DLL). Replace any references to these drivers
with the new Jet database engine 2.0 driver names (BTRV200.DLL,
PDX200.DLL, XBS200.DLL). If you use the Paradox driver
(PDX200.DLL), you must also add the entry "ParadoxNetStyle=3.x" to
the [Paradox ISAM] section of the VB.INI file. In addition, you
need to modify the .INI files of any executable applications
you've created. For example, if you have an application named
BREAD.EXE, you'd have to modify the BREAD.INI file as well. For an
example of new .INI entries, see Section 5, "Adapting Your .INI
Files," later in this document.
You should also change the entries in SETUPWIZ.INI to specify the
new files used in the Compatibility Layer. SETUPWIZ.INI is used
with the Setup Wizard to create distribution disks for your
application. Once you've installed the Compatibility Layer, any
applications you create that perform data access always use the
version 2.0 Jet database engine, even if you're accessing data in
earlier .MDB formats or other file formats. Therefore, whenever
you distribute an application created in Visual Basic 3.0 that
performs data access, you need to include the files listed
previously in Table 2.2. (You're free to distribute these files
with your application.) For an example of new entries for the
SETUPWIZ.INI file, see Section 5, "Adapting Your .INI Files,"
later in this document.
Setup doesn't remove the version 1.1 Jet database engine files
from your Windows System directory. If you have no other
application using those files (such as Microsoft Access 1.1), you
can delete them. As a precaution, however, you may want to rename
them or move them to another directory for a few days before
deleting them to ensure that no other application uses them.
------------------------------------------
3. Limitations of the Compatibility Layer
------------------------------------------
Although the Compatibility Layer enables your Visual Basic 3.0
applications to read and write data stored in Microsoft Access 2.0
databases, it doesn't give your applications access to all the new
Jet database engine 2.0 objects and features because the existing
Visual Basic 3.0 language doesn't support programmatic access to
these new features.
When your Visual Basic 3.0 application manipulates data in
Microsoft Access 2.0 databases, you'll encounter the following
limitations:
** New Jet database engine 2.0 errors, which result from
new database engine behavior, will be returned as unknown
errors ("Reserved error <error number.>"). The error
numbers listed in the error messages are version 2.0
Jet database engine numbers. To determine the message
associated with an error number, search for "error codes"
in Microsoft Access 2.0 Help.
** Visual Basic version 3.0 doesn't take advantage of any
of the new Jet database engine 2.0 properties, objects,
or methods. See Section 6, "Availability of Version 2.0
Jet Database Engine Features," at the end of this document
for a list of major new features and information about
their accessibility from Visual Basic 3.0 applications.
** The version 2.0 Jet database engine supports eight new
collating orders (Arabic, Russian, Czech, Greek, Hebrew,
Hungarian, Polish, and Turkish), which are unavailable to
Visual Basic 3.0. Databases created in any of these
languages are available in read-only mode only. Data in
the languages may not sort correctly when accessed by
Visual Basic.
** The version 2.0 Jet database engine allows the entry of
zero-length strings as well as Null values. Because of
this, Null values aren't automatically converted to
zero-length strings when they're entered into version
2.0 databases. This may cause some updates to fail
because of validation rules that require zero-length
strings, resulting in a message for an unknown error
("Reserved error <error number.>"). To fix the error,
you have to either use Microsoft Access 2.0 to change
the rule or not enter Null data into the database.
For more information, see Section 6, "Availability of
Version 2.0 Jet Database Engine Features."
** You can't open a dynaset on a remote database (such as a
SQL Server database) within a transaction using the version
2.0 Jet database engine. For example, the following code will
fail as the dynaset is created:
Dim MyDB As Database, MyDS As Dynaset
Set MyDB = OpenDatabase("") ' Open user-selected external
' database.
MyDB.BeginTrans ' Begin transaction.
' Open first table.
Set MyDS = MyDB.CreateDynaset(MyDB.TableDefs(0))
However, if you attach tables from the remote database to
a Microsoft Access database, you can create dynasets on
those tables within transactions. (Note that access to
remote data is faster if the tables are attached.)
-----------------------------------------------------------
4. Microsoft Jet Database Engine 1.1 Compatibility Issues
------------------------------------------------------------
When you use the Compatibility Layer to access data in version 2.0
format, you should keep the following issues in mind:
** Because the Compatibility Layer is uniquely named
(MSAJT112.DLL), it shouldn't cause any problems with
applications (such as Microsoft Access 1.1) that use
the file MSAJT110.DLL. Jet database engine 1.1
installable ISAM drivers can't be used by the version
2.0 database engine. If the version 1.1 drivers are
listed in the [Installable ISAM] section of your
.INI file, an error will occur when you attempt to
use your application to access data in any of these
database formats.
** Visual Basic 3.0 applications that use the version
2.0 Jet database engine may be able to update data
in situations in which they previously could not (for
example, the "one" side of a one-to-many relationship).
However, applications can't update data when the change
would orphan records on the many side of a recordset.
** For some new SQL reserved words, you must enclose the
word in brackets ([ ]) if you want to use it as part
of an identifier (for example, a table or field name)
in the context of an SQL string. For a list of the Jet
database engine 2.0 SQL reserved words, search Microsoft
Access 2.0 Help for "SQL."
** By default, the CreateDatabase function and CompactDatabase
statement now create databases in Jet database engine 2.0
format. You can override this default behavior by using
the DB_VERSION10 constant (in the file DATACONS.TXT). Using
this constant creates a version 1.1 database, not a version
1.0 database. You can't create version 1.0 databases.
The following table shows which type of database is created
when you use CreateDatabase and CompactDatabase with and
without DB_VERSION10.
-----------------------------------------------------------------
Jet database engine Creates by default With DB_VERSION10
-----------------------------------------------------------------
Version 1.1 Version 1.1 database Version 1.0 database
Version 2.0 Version 2.0 database Version 1.1 database
------------------------------
5. Adapting Your .INI Files
------------------------------
Your .INI file is used by the Jet database engine to locate driver
files. When you're designing your application, the VB.INI file
contains entries that point to each of the installable ISAM
drivers your application will need. If you're creating an
executable Visual Basic 3.0 program, you'll need to create an .INI
file for the application that also contains these entries. For
example, if your application is named CAT.EXE, you'll need to
create an .INI file called CAT.INI and add the necessary entries.
Shown below is the default [Installable ISAM] section of the
VB.INI file. Although it includes entries for all the installable
ISAM drivers, the .INI file you create for your application may
need only one of these entries. If you use the Paradox driver
(PDX200.DLL), you also need to add a line to the [Paradox ISAM]
section of your .INI files. You don't need to change any of the
other entries in your .INI files.
Default entries for VB.INI and <appname>.INI
------------------------------------------------------------------
[Installable ISAMs]
Paradox 3.X=C:\VB\PDX200.DLL ;Path of the Paradox 3.x driver
Paradox 4.X=C:\VB\PDX200.DLL ;Path of the Paradox 4.x driver
FoxPro 2.0=C:\VB\XBS200.DLL ;Path of the Microsoft FoxPro 2.0
driver
FoxPro 2.5=C:\VB\XBS200.DLL ;Path of the Microsoft FoxPro 2.5
driver
dBASE III=C:\VB\XBS200.DLL ;Path of the dBASE III driver
dBASE IV=C:\VB\XBS200.DLL ;Path of the dBASE IV driver
Btrieve=C:\VB\BTRV200.DLL ;Path of the Btrieve driver
[Paradox ISAM]
ParadoxNetStyle=3.x ;Required to open Paradox
databases
---------------------------------------------------------
NOTE You don't need new ODBC drivers to use the version
2.0 Jet database engine; it works correctly with the ODBC
drivers that were included with Visual Basic version 3.0.
---------------------------------------------------------
In addition, you can adapt SETUPWIZ.INI to accommodate the new
drivers and additional files. You can remove entries for these
files:
** MSAJT110.DLL
** MSAES110.DLL
** XBS110.DLL
** PDX110.DLL
** BTRV110.DLL
These are the new entries for SETUPWIZ.INI.
----------------------------------------------------
[ACCESS] ; Key used by Setup Wizard
; Jet database engine files
file1=MSABC110.DLL
file2=MSAJT200.DLL
file3=VBDB300.DLL
file4=SHARE.EXE:1 ; Jet database engine DLLs require
; 'SHARE.EXE /L:500' in AUTOEXEC.BAT
file5=MSAJT112.DLL
; Files used by the Crystal Report (*.RPT) files
[PDBJET.DLL]
file1=PDBJET.DLL ; Jet database engine DLL for Crystal Reports
file2=PDIRJET.DLL ; Jet database engine DLL for Crystal Reports
file3=PDCTJET.DLL ; Jet database engine DLL for Crystal Reports
file4=MSABC110.DLL ; Jet database engine DLL for Crystal Reports
file5=MSAJT200.DLL ; Jet database engine DLL for Crystal Reports
file6=VBDB300.DLL ; Visual Basic DLL for Crystal Reports
file7=SHARE.EXE:1 ; Jet database engine DLLs require
; 'SHARE.EXE /L:500' in AUTOEXEC.BAT
file8=MSAJT112.DLL ; Compatibility Layer
-------------------------------------------------------------
6. Availability of Version 2.0 Jet Database Engine Features
-------------------------------------------------------------
This section lists new features of the version 2.0 Jet database
engine and indicates whether you can take advantage of them in
Visual Basic 3.0 when you use the Compatibility Layer.
Cascading Updates and Deletes
-----------------------------
In Microsoft Access 2.0, you can specify that updates and/or
deletions in referenced fields can be cascaded to all referencing
tables. In Visual Basic 3.0, however, you can't specify cascading
updates or deletes. Consequently, you must use Microsoft Access
2.0 to set this feature. Note that some errors generated from
cascading updates and deletes are returned as reserved errors.
Whenever possible, these new errors are mapped to existing errors.
Table-Level Validation
----------------------
Field- and record-level validation is now maintained by the Jet
database engine. This includes setting table-level validation
rules as well as default values. In Visual Basic 3.0, you can't
set table-level validation rules or default values. Once these
values are set by Microsoft Access 2.0, applications created in
Visual Basic 3.0 will see the results. Violations of table-level
validation rules generate reserved errors.
Zero-Length Strings
-------------------
In Microsoft Access 2.0 databases, you can enter a zero- length
string ("") to indicate data that is known but doesn't exist. A
zero-length string is a string in a Text field containing no
characters; it's not the same as Null. Visual Basic converts all
zero-length strings to Null. There is no way to enter zero-length
strings in Visual Basic 3.0. When table-level validation rules or
default values have been set by Microsoft Access to enforce the
entry of zero-length strings, Visual Basic 3.0 can't enter Null
data into these fields.